﻿Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.Threading
Imports System.IO
Imports System.ServiceProcess
Imports System.Net

Module Funciones
    Public myAsignatura As New Asignatura
    Public myArchivo As New Archivo
    Public myApunte As New Apunte
    Public is_online, chrome, apache As Boolean
    'microfono dlls,
    Public public_rutaPdf, ip As String
    Public Function comprobarConexion() As Boolean
        Dim url As New System.Uri("http://www.google.cl")
        Dim objWebReq As System.Net.WebRequest
        objWebReq = System.Net.WebRequest.Create(url)
        Dim objResp As System.Net.WebResponse
        Try
            objResp = objWebReq.GetResponse
            objResp.Close()
            objWebReq = Nothing
            Return True
        Catch ex As Exception
            objWebReq = Nothing
            Return False
        End Try
    End Function
    Public Function archivoChrome() As Boolean
        If My.Computer.FileSystem.FileExists("C:\Program Files\Google\Chrome\Application\chrome.exe") Then
            Return True
        Else
            Return False
        End If
    End Function
    Public Sub exportarPdf(ByVal apuntes As String)
        Dim oDoc As New iTextSharp.text.Document(PageSize.A4, 0, 0, 0, 0)
        Dim pdfw As iTextSharp.text.pdf.PdfWriter
        Dim cb As PdfContentByte
        Dim fuente As iTextSharp.text.pdf.BaseFont
        '----> CONSULTA A LA RUTA EN LA BASE DE DATOS! <------
        Dim NombreArchivo As String = "\ejemploApunte.pdf"
        Try
            public_rutaPdf = NombreArchivo
            pdfw = PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _
            FileMode.Create, FileAccess.Write, FileShare.None))
            'Apertura del documento.
            oDoc.Open()
            cb = pdfw.DirectContent
            'Agregamos una pagina.
            oDoc.NewPage()
            'Iniciamos el flujo de bytes.
            cb.BeginText()
            'Instanciamos el objeto para la tipo de letra.
            fuente = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL).BaseFont
            'Seteamos el tipo de letra y el tamaño.
            cb.SetFontAndSize(fuente, 12)
            'Seteamos el color del texto a escribir.
            cb.SetColorFill(iTextSharp.text.BaseColor.BLACK)
            'Aqui es donde se escribe el texto.
            'Aclaracion: Por alguna razon la coordenada vertical siempre es tomada desde el borde inferior (de ahi que se calcule como "PageSize.A4.Height - 50")
            cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "TÍTULO " & vbNewLine & vbNewLine & apuntes, 200, PageSize.A4.Height - 50, 0)
            'Fin del flujo de bytes.
            cb.EndText()
            'Forzamos vaciamiento del buffer.
            pdfw.Flush()
            'Cerramos el documento.
            oDoc.Close()
        Catch ex As Exception
            'Si hubo una excepcion y el archivo existe ...
            If File.Exists(NombreArchivo) Then
                'Cerramos el documento si esta abierto.
                'Y asi desbloqueamos el archivo para su eliminacion.
                If oDoc.IsOpen Then oDoc.Close()
                '... lo eliminamos de disco.
                File.Delete(NombreArchivo)
            End If
            Throw New Exception("Error al generar archivo PDF (" & ex.Message & ")")
        Finally
            cb = Nothing
            pdfw = Nothing
            oDoc = Nothing
        End Try
    End Sub

    Public Function AbrirArchivo(ByVal Ruta As String)
        Dim objReader As New StreamReader(Ruta)
        Dim sLine As String = ""
        Dim Texto As String = ""
        Dim arrText As New ArrayList()
        Do
            sLine = objReader.ReadLine()
            If Not sLine Is Nothing Then
                arrText.Add(sLine + vbCrLf)
            End If
        Loop Until sLine Is Nothing
        objReader.Close()
        For Each sLine In arrText
            Texto += sLine
        Next
        Return Texto
    End Function
    Public Sub autoSave(ByVal texto As String, ByVal ruta As String)
        Dim texto_final As String = " "
        texto_final = texto & texto_final
        If My.Computer.FileSystem.FileExists(ruta) Then
            'My.Computer.FileSystem.DeleteFile(myArchivo.myUrl)
            My.Computer.FileSystem.DeleteFile(ruta)
            'My.Computer.FileSystem.WriteAllText(myArchivo.myUrl, texto_final, True)
            My.Computer.FileSystem.WriteAllText(ruta, texto_final, True)
        Else
            My.Computer.FileSystem.WriteAllText(ruta, texto_final, True)
        End If

    End Sub
    Public Function GetLocalIP() As String
        Dim IPList As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName)

        For Each IPaddress In IPList.AddressList
            'Only return IPv4 routable IPs
            If (IPaddress.AddressFamily = Sockets.AddressFamily.InterNetwork) Then
                Return IPaddress.ToString
            End If
        Next
        Return ""
    End Function
    Function ValidarIP(ByVal IP As String)
        Try
            Dim eco As New System.Net.NetworkInformation.Ping
            Dim res As System.Net.NetworkInformation.PingReply
            Dim address As IPAddress
            Dim valor As Boolean

            address = IPAddress.Parse(IP)

            For index = 1 To 4
                res = eco.Send(IP)
                'Ingresoip.Label3.Text = "Intento " & index & " de 4"
                Ingresoip.ProgressBar1.Value += 25
                If res.Status = NetworkInformation.IPStatus.Success Then
                    'Ingresoip.ProgressBar1.Value = 100
                    valor = True
                Else
                    valor = False
                End If
            Next
            Return valor
        Catch ex As Exception
            MsgBox(ex.Message)
            Return False
        End Try
    End Function
End Module
